rules of method overriding